#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


class Father:
    # 构造方法
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 特殊的方法 魔术方法
    # Python自己实现的一些方法被称为魔术方法
    # 如果使用print打印一个类的实例对象本身，则会自动触发__str__方法
    def __str__(self):
        return f'{self.name}的年龄是：{self.age}'


class Son(Father):
    def __init__(self, name, age, address):
        super().__init__(name, age)  # 在子类中运行父类的构造方法 不需要手动的去创建父类已经存在的属性
        self.address = address

    def __str__(self):
        return f'{self.name}的年龄是：{self.age}，地址是：{self.address}'


father = Father('张三', 20)
print(father)

son = Son('李四', 21, '北京')
print(son)

